

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 7.00.0555 */
/* at Fri Feb 28 22:29:30 2014
 */
/* Compiler settings for CDMControl.idl:
    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __CDMControl_h__
#define __CDMControl_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IIPCDMControl_FWD_DEFINED__
#define __IIPCDMControl_FWD_DEFINED__
typedef interface IIPCDMControl IIPCDMControl;
#endif 	/* __IIPCDMControl_FWD_DEFINED__ */


#ifndef ___IIPCDMControlEvents_FWD_DEFINED__
#define ___IIPCDMControlEvents_FWD_DEFINED__
typedef interface _IIPCDMControlEvents _IIPCDMControlEvents;
#endif 	/* ___IIPCDMControlEvents_FWD_DEFINED__ */


#ifndef __IPCDMControl_FWD_DEFINED__
#define __IPCDMControl_FWD_DEFINED__

#ifdef __cplusplus
typedef class IPCDMControl IPCDMControl;
#else
typedef struct IPCDMControl IPCDMControl;
#endif /* __cplusplus */

#endif 	/* __IPCDMControl_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 


#ifndef __IIPCDMControl_INTERFACE_DEFINED__
#define __IIPCDMControl_INTERFACE_DEFINED__

/* interface IIPCDMControl */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IIPCDMControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("89f70db9-5830-404f-ac3a-2f59da1ac684")
    IIPCDMControl : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPRegister( 
            BSTR username,
            BSTR password,
            BSTR uaid,
            int ualevel,
            int uaflag) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPUnregister( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPInvite( 
            BSTR peer,
            int nFastPreview,
            int nLiveStreamType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPBye( 
            BSTR peer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPSnap( 
            BSTR filename,
            BSTR peer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPSetVideoParams( 
            short width,
            short height,
            short fps) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPCommand( 
            BSTR peer,
            BSTR cmd,
            BSTR value,
            BSTR reserved) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPSubscribePresence( 
            BSTR Peer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPRecord( 
            BSTR filename,
            BSTR peer,
            BSTR format) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPStopRecord( 
            BSTR peer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPSeekPos( 
            long pos,
            BSTR peer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPPlayFast( 
            int scale,
            BSTR peer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPSetPicCallback( 
            long cback) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPPlay( 
            BSTR peer,
            BSTR nrsaor,
            BSTR start,
            BSTR end,
            int scale,
            int control,
            int type,
            int nFastPreview) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MotionDetect( 
            BSTR peer,
            int set,
            int sensitivity,
            int erosion,
            int dilation) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BShowLastFrame( 
            /* [retval][out] */ BOOL *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BShowLastFrame( 
            /* [in] */ BOOL newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetToken( 
            BSTR token) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPSubscribeSub( 
            /* [in] */ BSTR servertype,
            /* [in] */ BSTR remoteAor,
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPSubscribeLock( 
            /* [in] */ BSTR peer,
            /* [in] */ BSTR remoteAor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPSubscribeUnlock( 
            /* [in] */ BSTR peer,
            /* [in] */ BSTR remoteAor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPSendAlarm( 
            /* [in] */ BSTR mtaccount,
            /* [in] */ int alarmModule,
            /* [in] */ int alarmSerialNum,
            /* [in] */ int alarmLevel,
            /* [in] */ BSTR alarmDescription,
            /* [in] */ BSTR remoteAor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetServerInfo( 
            /* [in] */ BSTR cospAddr,
            /* [in] */ int cospPort,
            /* [in] */ BSTR coevAor,
            /* [in] */ BSTR coasAor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCoevSubInfoList( 
            /* [in] */ BSTR subaccount,
            /* [in] */ int useType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddCoasSubInfoList( 
            /* [in] */ BSTR subaccount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ImageProcess( 
            BSTR cmdName,
            BSTR cmdValue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPBroadcast( 
            BSTR peer,
            int ctrlVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPConverse( 
            BSTR peer,
            int ctrlVal,
            int nDevType,
            BSTR provider) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPPlaySound( 
            BSTR peer,
            int ctrlVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ControlVersion( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DisableCodec( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InterfaceForTest( 
            int interfaceType,
            BSTR value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPCommandEx( 
            /* [in] */ BSTR peer,
            /* [in] */ BSTR cmd,
            /* [in] */ BSTR value,
            /* [in] */ int speed,
            /* [in] */ int ctrl) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPDownloadRecord( 
            /* [in] */ BSTR peer,
            /* [in] */ BSTR nrsaor,
            /* [in] */ BSTR start,
            /* [in] */ BSTR end,
            /* [in] */ BSTR filePath,
            /* [in] */ int control,
            /* [in] */ int speed,
            /* [in] */ int nFastPreview) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TVCardInitialize( 
            /* [retval][out] */ int *pval) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TVCardGetChannels( 
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TVCardOpenChannel( 
            /* [in] */ int channel,
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TVCardCloseChannel( 
            /* [in] */ int channel,
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TVCardUninitialize( 
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TVCardInputData( 
            /* [in] */ int channel,
            /* [in] */ int colorSpace,
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OsdDisplay( 
            int ctrl,
            BSTR value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPAdaptWnd( 
            BOOL bAdapt) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPExchange( 
            BSTR sipurl,
            BSTR requestXML) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPLocalPlay( 
            /* [in] */ BSTR pathName,
            /* [in] */ long scale,
            /* [in] */ long control,
            /* [in] */ long seek,
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPGetSubDialogState( 
            /* [in] */ BSTR subUrl,
            /* [retval][out] */ int *state) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPExit( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLogLevel( 
            int nLogLevel) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SIPIsRegisteredFromCOEV( 
            /* [retval][out] */ BOOL *pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIPCDMControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IIPCDMControl * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IIPCDMControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IIPCDMControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IIPCDMControl * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IIPCDMControl * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IIPCDMControl * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IIPCDMControl * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPRegister )( 
            IIPCDMControl * This,
            BSTR username,
            BSTR password,
            BSTR uaid,
            int ualevel,
            int uaflag);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPUnregister )( 
            IIPCDMControl * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPInvite )( 
            IIPCDMControl * This,
            BSTR peer,
            int nFastPreview,
            int nLiveStreamType);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPBye )( 
            IIPCDMControl * This,
            BSTR peer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPSnap )( 
            IIPCDMControl * This,
            BSTR filename,
            BSTR peer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPSetVideoParams )( 
            IIPCDMControl * This,
            short width,
            short height,
            short fps);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPCommand )( 
            IIPCDMControl * This,
            BSTR peer,
            BSTR cmd,
            BSTR value,
            BSTR reserved);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPSubscribePresence )( 
            IIPCDMControl * This,
            BSTR Peer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPRecord )( 
            IIPCDMControl * This,
            BSTR filename,
            BSTR peer,
            BSTR format);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPStopRecord )( 
            IIPCDMControl * This,
            BSTR peer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPSeekPos )( 
            IIPCDMControl * This,
            long pos,
            BSTR peer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPPlayFast )( 
            IIPCDMControl * This,
            int scale,
            BSTR peer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPSetPicCallback )( 
            IIPCDMControl * This,
            long cback);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPPlay )( 
            IIPCDMControl * This,
            BSTR peer,
            BSTR nrsaor,
            BSTR start,
            BSTR end,
            int scale,
            int control,
            int type,
            int nFastPreview);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MotionDetect )( 
            IIPCDMControl * This,
            BSTR peer,
            int set,
            int sensitivity,
            int erosion,
            int dilation);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BShowLastFrame )( 
            IIPCDMControl * This,
            /* [retval][out] */ BOOL *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BShowLastFrame )( 
            IIPCDMControl * This,
            /* [in] */ BOOL newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetToken )( 
            IIPCDMControl * This,
            BSTR token);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPSubscribeSub )( 
            IIPCDMControl * This,
            /* [in] */ BSTR servertype,
            /* [in] */ BSTR remoteAor,
            /* [retval][out] */ int *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPSubscribeLock )( 
            IIPCDMControl * This,
            /* [in] */ BSTR peer,
            /* [in] */ BSTR remoteAor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPSubscribeUnlock )( 
            IIPCDMControl * This,
            /* [in] */ BSTR peer,
            /* [in] */ BSTR remoteAor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPSendAlarm )( 
            IIPCDMControl * This,
            /* [in] */ BSTR mtaccount,
            /* [in] */ int alarmModule,
            /* [in] */ int alarmSerialNum,
            /* [in] */ int alarmLevel,
            /* [in] */ BSTR alarmDescription,
            /* [in] */ BSTR remoteAor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetServerInfo )( 
            IIPCDMControl * This,
            /* [in] */ BSTR cospAddr,
            /* [in] */ int cospPort,
            /* [in] */ BSTR coevAor,
            /* [in] */ BSTR coasAor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCoevSubInfoList )( 
            IIPCDMControl * This,
            /* [in] */ BSTR subaccount,
            /* [in] */ int useType);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddCoasSubInfoList )( 
            IIPCDMControl * This,
            /* [in] */ BSTR subaccount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ImageProcess )( 
            IIPCDMControl * This,
            BSTR cmdName,
            BSTR cmdValue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPBroadcast )( 
            IIPCDMControl * This,
            BSTR peer,
            int ctrlVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPConverse )( 
            IIPCDMControl * This,
            BSTR peer,
            int ctrlVal,
            int nDevType,
            BSTR provider);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPPlaySound )( 
            IIPCDMControl * This,
            BSTR peer,
            int ctrlVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ControlVersion )( 
            IIPCDMControl * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DisableCodec )( 
            IIPCDMControl * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InterfaceForTest )( 
            IIPCDMControl * This,
            int interfaceType,
            BSTR value);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPCommandEx )( 
            IIPCDMControl * This,
            /* [in] */ BSTR peer,
            /* [in] */ BSTR cmd,
            /* [in] */ BSTR value,
            /* [in] */ int speed,
            /* [in] */ int ctrl);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPDownloadRecord )( 
            IIPCDMControl * This,
            /* [in] */ BSTR peer,
            /* [in] */ BSTR nrsaor,
            /* [in] */ BSTR start,
            /* [in] */ BSTR end,
            /* [in] */ BSTR filePath,
            /* [in] */ int control,
            /* [in] */ int speed,
            /* [in] */ int nFastPreview);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TVCardInitialize )( 
            IIPCDMControl * This,
            /* [retval][out] */ int *pval);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TVCardGetChannels )( 
            IIPCDMControl * This,
            /* [retval][out] */ int *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TVCardOpenChannel )( 
            IIPCDMControl * This,
            /* [in] */ int channel,
            /* [retval][out] */ int *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TVCardCloseChannel )( 
            IIPCDMControl * This,
            /* [in] */ int channel,
            /* [retval][out] */ int *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TVCardUninitialize )( 
            IIPCDMControl * This,
            /* [retval][out] */ int *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TVCardInputData )( 
            IIPCDMControl * This,
            /* [in] */ int channel,
            /* [in] */ int colorSpace,
            /* [retval][out] */ int *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OsdDisplay )( 
            IIPCDMControl * This,
            int ctrl,
            BSTR value);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPAdaptWnd )( 
            IIPCDMControl * This,
            BOOL bAdapt);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPExchange )( 
            IIPCDMControl * This,
            BSTR sipurl,
            BSTR requestXML);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPLocalPlay )( 
            IIPCDMControl * This,
            /* [in] */ BSTR pathName,
            /* [in] */ long scale,
            /* [in] */ long control,
            /* [in] */ long seek,
            /* [retval][out] */ int *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPGetSubDialogState )( 
            IIPCDMControl * This,
            /* [in] */ BSTR subUrl,
            /* [retval][out] */ int *state);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPExit )( 
            IIPCDMControl * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLogLevel )( 
            IIPCDMControl * This,
            int nLogLevel);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SIPIsRegisteredFromCOEV )( 
            IIPCDMControl * This,
            /* [retval][out] */ BOOL *pVal);
        
        END_INTERFACE
    } IIPCDMControlVtbl;

    interface IIPCDMControl
    {
        CONST_VTBL struct IIPCDMControlVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIPCDMControl_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IIPCDMControl_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IIPCDMControl_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IIPCDMControl_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IIPCDMControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IIPCDMControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IIPCDMControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IIPCDMControl_SIPRegister(This,username,password,uaid,ualevel,uaflag)	\
    ( (This)->lpVtbl -> SIPRegister(This,username,password,uaid,ualevel,uaflag) ) 

#define IIPCDMControl_SIPUnregister(This)	\
    ( (This)->lpVtbl -> SIPUnregister(This) ) 

#define IIPCDMControl_SIPInvite(This,peer,nFastPreview,nLiveStreamType)	\
    ( (This)->lpVtbl -> SIPInvite(This,peer,nFastPreview,nLiveStreamType) ) 

#define IIPCDMControl_SIPBye(This,peer)	\
    ( (This)->lpVtbl -> SIPBye(This,peer) ) 

#define IIPCDMControl_SIPSnap(This,filename,peer)	\
    ( (This)->lpVtbl -> SIPSnap(This,filename,peer) ) 

#define IIPCDMControl_SIPSetVideoParams(This,width,height,fps)	\
    ( (This)->lpVtbl -> SIPSetVideoParams(This,width,height,fps) ) 

#define IIPCDMControl_SIPCommand(This,peer,cmd,value,reserved)	\
    ( (This)->lpVtbl -> SIPCommand(This,peer,cmd,value,reserved) ) 

#define IIPCDMControl_SIPSubscribePresence(This,Peer)	\
    ( (This)->lpVtbl -> SIPSubscribePresence(This,Peer) ) 

#define IIPCDMControl_SIPRecord(This,filename,peer,format)	\
    ( (This)->lpVtbl -> SIPRecord(This,filename,peer,format) ) 

#define IIPCDMControl_SIPStopRecord(This,peer)	\
    ( (This)->lpVtbl -> SIPStopRecord(This,peer) ) 

#define IIPCDMControl_SIPSeekPos(This,pos,peer)	\
    ( (This)->lpVtbl -> SIPSeekPos(This,pos,peer) ) 

#define IIPCDMControl_SIPPlayFast(This,scale,peer)	\
    ( (This)->lpVtbl -> SIPPlayFast(This,scale,peer) ) 

#define IIPCDMControl_SIPSetPicCallback(This,cback)	\
    ( (This)->lpVtbl -> SIPSetPicCallback(This,cback) ) 

#define IIPCDMControl_SIPPlay(This,peer,nrsaor,start,end,scale,control,type,nFastPreview)	\
    ( (This)->lpVtbl -> SIPPlay(This,peer,nrsaor,start,end,scale,control,type,nFastPreview) ) 

#define IIPCDMControl_MotionDetect(This,peer,set,sensitivity,erosion,dilation)	\
    ( (This)->lpVtbl -> MotionDetect(This,peer,set,sensitivity,erosion,dilation) ) 

#define IIPCDMControl_get_BShowLastFrame(This,pVal)	\
    ( (This)->lpVtbl -> get_BShowLastFrame(This,pVal) ) 

#define IIPCDMControl_put_BShowLastFrame(This,newVal)	\
    ( (This)->lpVtbl -> put_BShowLastFrame(This,newVal) ) 

#define IIPCDMControl_SetToken(This,token)	\
    ( (This)->lpVtbl -> SetToken(This,token) ) 

#define IIPCDMControl_SIPSubscribeSub(This,servertype,remoteAor,pVal)	\
    ( (This)->lpVtbl -> SIPSubscribeSub(This,servertype,remoteAor,pVal) ) 

#define IIPCDMControl_SIPSubscribeLock(This,peer,remoteAor)	\
    ( (This)->lpVtbl -> SIPSubscribeLock(This,peer,remoteAor) ) 

#define IIPCDMControl_SIPSubscribeUnlock(This,peer,remoteAor)	\
    ( (This)->lpVtbl -> SIPSubscribeUnlock(This,peer,remoteAor) ) 

#define IIPCDMControl_SIPSendAlarm(This,mtaccount,alarmModule,alarmSerialNum,alarmLevel,alarmDescription,remoteAor)	\
    ( (This)->lpVtbl -> SIPSendAlarm(This,mtaccount,alarmModule,alarmSerialNum,alarmLevel,alarmDescription,remoteAor) ) 

#define IIPCDMControl_SetServerInfo(This,cospAddr,cospPort,coevAor,coasAor)	\
    ( (This)->lpVtbl -> SetServerInfo(This,cospAddr,cospPort,coevAor,coasAor) ) 

#define IIPCDMControl_AddCoevSubInfoList(This,subaccount,useType)	\
    ( (This)->lpVtbl -> AddCoevSubInfoList(This,subaccount,useType) ) 

#define IIPCDMControl_AddCoasSubInfoList(This,subaccount)	\
    ( (This)->lpVtbl -> AddCoasSubInfoList(This,subaccount) ) 

#define IIPCDMControl_ImageProcess(This,cmdName,cmdValue)	\
    ( (This)->lpVtbl -> ImageProcess(This,cmdName,cmdValue) ) 

#define IIPCDMControl_SIPBroadcast(This,peer,ctrlVal)	\
    ( (This)->lpVtbl -> SIPBroadcast(This,peer,ctrlVal) ) 

#define IIPCDMControl_SIPConverse(This,peer,ctrlVal,nDevType,provider)	\
    ( (This)->lpVtbl -> SIPConverse(This,peer,ctrlVal,nDevType,provider) ) 

#define IIPCDMControl_SIPPlaySound(This,peer,ctrlVal)	\
    ( (This)->lpVtbl -> SIPPlaySound(This,peer,ctrlVal) ) 

#define IIPCDMControl_get_ControlVersion(This,pVal)	\
    ( (This)->lpVtbl -> get_ControlVersion(This,pVal) ) 

#define IIPCDMControl_DisableCodec(This)	\
    ( (This)->lpVtbl -> DisableCodec(This) ) 

#define IIPCDMControl_InterfaceForTest(This,interfaceType,value)	\
    ( (This)->lpVtbl -> InterfaceForTest(This,interfaceType,value) ) 

#define IIPCDMControl_SIPCommandEx(This,peer,cmd,value,speed,ctrl)	\
    ( (This)->lpVtbl -> SIPCommandEx(This,peer,cmd,value,speed,ctrl) ) 

#define IIPCDMControl_SIPDownloadRecord(This,peer,nrsaor,start,end,filePath,control,speed,nFastPreview)	\
    ( (This)->lpVtbl -> SIPDownloadRecord(This,peer,nrsaor,start,end,filePath,control,speed,nFastPreview) ) 

#define IIPCDMControl_TVCardInitialize(This,pval)	\
    ( (This)->lpVtbl -> TVCardInitialize(This,pval) ) 

#define IIPCDMControl_TVCardGetChannels(This,pVal)	\
    ( (This)->lpVtbl -> TVCardGetChannels(This,pVal) ) 

#define IIPCDMControl_TVCardOpenChannel(This,channel,pVal)	\
    ( (This)->lpVtbl -> TVCardOpenChannel(This,channel,pVal) ) 

#define IIPCDMControl_TVCardCloseChannel(This,channel,pVal)	\
    ( (This)->lpVtbl -> TVCardCloseChannel(This,channel,pVal) ) 

#define IIPCDMControl_TVCardUninitialize(This,pVal)	\
    ( (This)->lpVtbl -> TVCardUninitialize(This,pVal) ) 

#define IIPCDMControl_TVCardInputData(This,channel,colorSpace,pVal)	\
    ( (This)->lpVtbl -> TVCardInputData(This,channel,colorSpace,pVal) ) 

#define IIPCDMControl_OsdDisplay(This,ctrl,value)	\
    ( (This)->lpVtbl -> OsdDisplay(This,ctrl,value) ) 

#define IIPCDMControl_SIPAdaptWnd(This,bAdapt)	\
    ( (This)->lpVtbl -> SIPAdaptWnd(This,bAdapt) ) 

#define IIPCDMControl_SIPExchange(This,sipurl,requestXML)	\
    ( (This)->lpVtbl -> SIPExchange(This,sipurl,requestXML) ) 

#define IIPCDMControl_SIPLocalPlay(This,pathName,scale,control,seek,pVal)	\
    ( (This)->lpVtbl -> SIPLocalPlay(This,pathName,scale,control,seek,pVal) ) 

#define IIPCDMControl_SIPGetSubDialogState(This,subUrl,state)	\
    ( (This)->lpVtbl -> SIPGetSubDialogState(This,subUrl,state) ) 

#define IIPCDMControl_SIPExit(This)	\
    ( (This)->lpVtbl -> SIPExit(This) ) 

#define IIPCDMControl_SetLogLevel(This,nLogLevel)	\
    ( (This)->lpVtbl -> SetLogLevel(This,nLogLevel) ) 

#define IIPCDMControl_SIPIsRegisteredFromCOEV(This,pVal)	\
    ( (This)->lpVtbl -> SIPIsRegisteredFromCOEV(This,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IIPCDMControl_INTERFACE_DEFINED__ */



#ifndef __CDMCLIENTLib_LIBRARY_DEFINED__
#define __CDMCLIENTLib_LIBRARY_DEFINED__

/* library CDMCLIENTLib */
/* [helpstring][version][uuid] */ 



EXTERN_C const IID LIBID_CDMCLIENTLib;

#ifndef ___IIPCDMControlEvents_DISPINTERFACE_DEFINED__
#define ___IIPCDMControlEvents_DISPINTERFACE_DEFINED__

/* dispinterface _IIPCDMControlEvents */
/* [helpstring][uuid] */ 


EXTERN_C const IID DIID__IIPCDMControlEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7f221b51-0303-4e51-9771-0f4835d2ae52")
    _IIPCDMControlEvents : public IDispatch
    {
    };
    
#else 	/* C style interface */

    typedef struct _IIPCDMControlEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _IIPCDMControlEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            __RPC__deref_out  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _IIPCDMControlEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _IIPCDMControlEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _IIPCDMControlEvents * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _IIPCDMControlEvents * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _IIPCDMControlEvents * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _IIPCDMControlEvents * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        END_INTERFACE
    } _IIPCDMControlEventsVtbl;

    interface _IIPCDMControlEvents
    {
        CONST_VTBL struct _IIPCDMControlEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _IIPCDMControlEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _IIPCDMControlEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _IIPCDMControlEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _IIPCDMControlEvents_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _IIPCDMControlEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _IIPCDMControlEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _IIPCDMControlEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */


#endif 	/* ___IIPCDMControlEvents_DISPINTERFACE_DEFINED__ */


EXTERN_C const CLSID CLSID_IPCDMControl;

#ifdef __cplusplus

class DECLSPEC_UUID("18b44068-834f-412d-b5a2-718cb599f73c")
IPCDMControl;
#endif
#endif /* __CDMCLIENTLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


